import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # Shape: (3, 3)
b = np.array([10, 20, 30])                      # Shape: (3,)
c = np.full((3,1), 10)

# 运算: a + b
# a 的 shape 是 (3, 3)
# b 的 shape 是 (3,)，可以看作 (1, 3)
# 广播过程:
# 1. NumPy将 b 的 shape 变为 (1, 3)
# 2. 比较 (3, 3) 和 (1, 3)。第一维不匹配 (3 vs 1)，但 b 的第一维是1，可以广播。
# 3. NumPy将 b "拉伸" 成 [[10, 20, 30], [10, 20, 30], [10, 20, 30]] 来进行计算。

result = a + b
print(f"\n广播计算 a + b:\n{result}")